package org.example;

import org.example.Voutils.ShareDataOne;
import org.example.Voutils.ShareDataOne2;
import org.example.Voutils.ThreadCommunicationDemo;
import org.example.Voutils.Ticket;

public class main2 {
    public static void main(String[] args) {
        //线程通信
//        ThreadCommunicationDemo threadCommunicationDemo = new ThreadCommunicationDemo();
//        threadCommunicationDemo.startThreads();
        //假唤醒测试
//        ShareDataOne shareDataOne = new ShareDataOne();
//        new Thread(()->{
//            for (int i = 0; i < 100; i++) {
//                shareDataOne.increment();
//
//            }
//        },"AAA").start();
//        new Thread(() -> {
//            for (int i = 0; i < 100; i++) {
//                shareDataOne.decrement();
//
//            }
//        },"BBB").start();
//        new Thread(() -> {
//            for (int i = 0; i < 100; i++) {
//                shareDataOne.increment();
//
//            }
//        }, "CCC").start();
//        new Thread(() -> {
//            for (int i = 0; i < 100; i++) {
//                shareDataOne.decrement();
//
//            }
//        }, "DDD").start();
        //线程通信2
        ShareDataOne2 shareDataOne2 = new ShareDataOne2();
        new Thread(()->{
            for (int i = 0; i < 10; i++) {
                shareDataOne2.increment();
            }
        }).start();
        new Thread(()->{
            for (int i = 0; i < 10; i++) {
                shareDataOne2.decrement();
            }
        }).start();
    }
}
